#include "CurrentThread.h"

namespace CurrentThread{

    __thread int t_cacheTid = 0;
    void cacheTid(){
        if(t_cacheTid == 0){
            /*
                syscall系統調用獲取的線程id是在linux內核中的，這個ID整個系統範圍唯一
                thread_t關鍵字的線程id是指在用戶空間的線程id，由於pthread庫進行分配管理，僅在分配
                    它的進程內唯一，但是在整個系統中可能並不唯一
            */
            t_cacheTid = static_cast<pid_t>(::syscall(SYS_gettid));
        }
    }
}
